/*
该页面实现了，co模块的功能，即这里的fn函数和getDate函数的返回promise对象。
现实中我们使用getDate函数，里面的返回值不用特意去设置成promise对象，因为使用了co后，这里的返回函数，
就是一个promise的对象。
 */
function getDate() {
    return new Promise((resolve,reject) => {
        resolve(66666);
    })

}

function run(fn) {
    var fn = fn();
    function auto(data) {
        var res = fn.next(data);
        if(res.done) return res.value;
        res.value.then(data => {
            auto(data)
        })
    }
    auto();
}

function *fn() {
    var num = yield getDate();
    console.log(num);
}

run(fn);

